package cn.oms.manage.dao.persist.repository;

import cn.oms.commons.pojo.vo.PageData;
import cn.oms.manage.pojo.entity.Department;
import cn.oms.manage.pojo.vo.DepartmentListVO;
import cn.oms.manage.pojo.vo.DepartmentStandardVO;

/**
 * 说明：
 *
 * @author: Fcx
 * @date: 2023/6/19
 **/
public interface IDepartmentRepository {
    /**
     * 插入用户数据
     *
     * @return 受影响的行数
     */
    int insert(Department customer);

    /**
     * 根据id删除用户数据
     *
     * @param id 用户ID
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据id修改用户数据
     *
     * @param customer 封装了用户id和新数据的对象
     * @return 受影响的行数
     */
    int update(Department customer);

    int countByName(String name);

    int countByNameAndNotId(Long id, String name);

    /**
     * 根据id查询用户数据详情
     *
     * @param id 用户ID
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    DepartmentStandardVO getStandardById(Long id);

    /**
     * 查询用户数据列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 用户数据列表
     */
    PageData<DepartmentListVO> list(Integer pageNum, Integer pageSize);
}
